package com.zlx.widget.filetransfer;

import com.zlx.module_base.sys_info.BaseResponsBean;

import java.util.HashMap;
import java.util.List;

import io.reactivex.Observable;
import okhttp3.MultipartBody;
import okhttp3.ResponseBody;
import retrofit2.http.GET;
import retrofit2.http.Multipart;
import retrofit2.http.POST;
import retrofit2.http.Part;
import retrofit2.http.QueryMap;
import retrofit2.http.Streaming;
import retrofit2.http.Url;

/**
 * copyright (C), 2022, 运达科技有限公司
 * fileName FileTransfer
 *
 * @author 王玺权
 * date 2022-05-21 19:20
 * description 文件传输统一处理
 * history
 */
public interface FileTransferApi {
    /**
     * 数据上传
     * @param url 全路径
     * @param partLis 上传数据 包括文件
     * @return
     */
    @Multipart
    @POST
    Observable<BaseResponsBean> uploadRequest(@Url String url, @Part List<MultipartBody.Part> partLis);

    /**
     * 数据下载
     * @param url 全路径
     * @param params 请求参数
     * @return 一般用于获取文件
     */
    @Streaming
    @POST
    Observable<ResponseBody> downLoadRequest(@Url String url,@QueryMap HashMap<String, Object> params);
}
